package com.tuling.gc;

/**
 * Created by chenhs on 2018/8/11.
 */
public class ReferenceCountingGC {

    public Object instance = null;

    private static final int _1MB = 1024*1024;

    /**
     * 这个成员属性的唯一意义就是占点内存，以便在能在GC日志中看清楚是否有过回收
     */
    private byte[] bigSize = new byte[2*_1MB];


    public static void testGC(){
        ReferenceCountingGC objA = new ReferenceCountingGC();
        ReferenceCountingGC objB = new ReferenceCountingGC();
        objA.instance = objB;
        objB.instance = objA;

        objA = null;
        objB = null;

        //假设在这行发生GC，objA和objB是否能回收
        System.gc();
    }

    public static void main(String[] args) {
        testGC();
    }

}
